// 1.闰年
// 功能：判断一个年份是不是闰年
// 参数：年份
// 返回值：true :是闰年；false:是平年
function isRunYear(year) {
    // return ((year%4==0&&year%100!=0)||(year%400==0))
    if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
        return true;
    }
    return false;
}
// 2.判断一个数是不是素数
// 功能：判断一个数是不是素数
// 参数：一个数（正整数）
// 返回值：true:是素数；false:不是素数
function isPrimer(num) {
    for (var i = 2; i <= Math.sqrt(num); i++) {
        if (num % i == 0) {
            return false;
        }
    }
    return true;
}
// 3.根据年月日，求第几天
// 功能：根据年月日，求第几天
// 参数：
//   year:年
//   month:月
//   date:日
//   返回值:如果输入的数字不合法返回-1;如果合法:返回1
function isDate(year, month, date) {
    if (!isDate(year, month, date)) {
        return -1;
    }
    var dayCount = 0;
    switch (month) {
        case 12: dayCount += 30;
        case 11: dayCount += 31
        case 10: dayCount += 30
        case 9: dayCount += 31
        case 8: dayCount += 31
        case 7: dayCount += 30
        case 6: dayCount += 31
        case 5: dayCount += 30
        case 4: dayCount += 31
        case 3: dayCount += ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) ? 29 : 28;;
        case 2: dayCount += 31;
        case 1: dayCount += date; break;
        default: ;
    }
    return dayCount;
}
// 4.根据阿拉伯数字，得到汉子星期
// 参数:0-6之间的阿拉伯数字
// 返回值:汉字的星期,如果传入的数字不是0-6之间则返回false
//       如:0---星期天
function toChineseWeek(num) {
    // if (num < 0 && num > 7) {
    //     return false;
    // }
    switch (num) {
        case 0: return "星期天"
        case 1: return "星期一"
        case 2: return "星期二"
        case 3: return "星期三"
        case 4: return "星期四"
        case 5: return "星期五"
        case 6: return "星期六"
        default: return false;
    }

}
// 5.国际BMI
// 功能:根据身高体重,得出体型
// 参数：
//     weight:体重
//     height:身高
// 返回值:-1 :偏瘦 0:正常 1:偏胖 2:太胖
function bmi(height, weight) {
    var value = weight / (height * height);
    if (value >= 18.5 && value < 24) {
        return 0;
    }
    else {
        if (value < 18.5) {
            return -1;
        }
        else if (value < 28) {
            return 1;
        }
        else {
            return 2;
        }
    }

}
// 6.m到n之间素数的个数
// 参数：
//     m:起始值
//     n:终止值
// 返回值:素数的个数
function primerCount(m, n) {
    var count = 0;
    for (var i = m; i <= n; i++) {
        if (isPrimer(i)) {
            count++;
        }
    }
    return count;
}

//  7.求斐波那契列中的第几个数
//  参数:n:第几个数
//  返回值:斐波那契列中的第n个数
function fibonacciCircle(n) {
    if (n == 1 || n == 2) {
        return 1;
    }
    var n1 = 1;
    var n2 = 1;
    var n3;
    for (var i = 2; i < n; i++) {
        n3 = n1 + n2;
        n1 = n2;
        n2 = n3;
    }
    return n3;
}
// 8.判断一个日期是不是合法的
// 参数:
//     year:年
//     month:月
//     date:日
// 返回值:true:合法;false:不合法;
function isDate(year, month, date) {
    if (year < 1) {
        return false;
    }
    else {
        if (month < 1 || month > 12) {
            return false;
        } else {
            if (date < 1 && date > 31) {
                return false;
            }
            else {
                if (month = 2) {
                    if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
                        if (date > 29) {
                            return false;
                        }
                    }

                    else {
                        if (date > 28) {
                            return false;
                        }
                    }

                } else if (month == 4 || month == 6 || month == 9 || month == 11) {
                    if (date > 30) {
                        return false;
                    }
                }

            }
        }
    }

}
// 9.m到n之间的加奇减偶
// 参数：
//     m:起始值
//     n:终止值
// 返回值:加奇减偶的结果
function addOddReduceEven(m, n) {
    var sum = 0;
    var sign = m % 2 != 0 ? 1 : -1;
    for (var i = m; i <= n; i++) {
        sum += sign * 1 / i;
    }
    return sum;
}